iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
1
自我挑戰組

三十天考過AWS CCP證照,真awsome系列 第 9

Day9:Application Load Balancer

  • 分享至 

  • xImage
  •  

1.Application Load Balancer是什麼?

Application Load Balancer是Elastic Load Balancing其中一種負載平衡器,負載平衡器可以理解成會將傳入的流量分散到多個可用區域,這樣可以提高可用性,當然這樣就必須為負載平衡器增加一個以上的接聽程式(後面會再多做說明)。

Elastic Load Balancing支援三種類型的負載平衡器:Application Load Balancer、Network Load Balancer和 Classic Load Balancer,Application Load Balancer的特點就是新增支援的通訊協定,例如HTTP/2 和 WebSocket 、在存取日誌中新增指標維度、提升了監控功能,更重要的是,新增了主機型路由及路徑型路由,主機型路由可讓相同負載平衡器支援多個網域,同時將請求路由到目標群組。路徑型路由可根據請求中的 URL 路由至目標群組。

2.實際動手做 - 實作Application Load Balancer

Step.1 在主控台中點選EC2
https://ithelp.ithome.com.tw/upload/images/20200904/20127667NJTSB5XQYm.png

Step.2 按下左方選單下方的「負載平衡器」
https://ithelp.ithome.com.tw/upload/images/20200904/20127667kwS1aNicEo.png

Step.3 在這個畫面可以看到我尚未建立負載平衡器,為了建立,首先按下左上的「Create Load Balancer」
https://ithelp.ithome.com.tw/upload/images/20200904/20127667VBkc7lupWm.png

Step.4 在這個畫面可以看到有三種不同的負載平衡器給我們選擇,那在此範例選擇 Application Load Balancer。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667rhuMgaVkUe.png

Step.5 接著就會進到設定的畫面,首先要先設定名字,這個名字未來會顯示在負載平衡器的DNS端點。再來Scheme選擇internet-facing,表示這個是面向網際網路的負載平衡器,下方的Listeners中文就翻成「接聽程式」,在這裡已經有一個預設的80埠,但為了要從相同的負載平衡器路由到第二個容器,所以在新增一個443埠的簡單HTTP設定。
https://ithelp.ithome.com.tw/upload/images/20200904/2012766763witbLoL0.png

Step.6 接下來要選擇可用區域(AZ),在 Application Load Balancer至少要選擇2個可用區域,那範例這邊剛好有三個可用區域,所以就選擇三個。接下來就要為Application Load Balancer貼上標籤,可以把索引鍵(Key)設定為Name,值(value)設定為Application Load Balancer,完成後按下「Next」。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667SAj9L6j70a.png

Step.7 看到這個畫面出現警告不用緊張,並沒有做錯,這個畫面是要設定安全設定,但必須是要用SSL 接聽程式才能設定,而這邊不沒有用,所以不能設定,所以直接按「Next」。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667EJmpq1AQDk.png

Step.8 接下來要選擇安全群組,先取消預設的安全群組,選擇在上一章節實作的Web伺服器安全群組。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667LVr2iXZ0UJ.png

Step.9 此頁要設定路由規則,由於沒有預先創建一個安全群組,所以第一欄就選擇「New target group」,然後給這個安全群組demo-1這個名字,接下來他使用的通訊協定就是80埠的HTTP。下方的Health checks(狀態檢查)一樣是HTTP,然後要連到一個簡易網頁命名為test.html。至於下方的Advanced Health Check Settings (進階運作狀態檢查設定)可以調整運作方式,那這裡為了提前正常運作,interval(狀態檢查間隔)設定為美10秒檢查一次,其他的值都不用變動,完成後按下「Next」。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667ZSlt6kwNLR.png

Step.10 在這個畫面要來註冊目標(targets),目的是要告知負載平衡器您希望執行個體要接聽的連接埠,所以選取唯一的demo-EC2,並按下藍色的「Add to registered(新增至已註冊)」,這時你就會發現此執行個體會被列在上方的Registered targets(已註冊的目標)內。完成後按下「Next」。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667nhCETB84Sc.png

Step.11 接下來這一頁會看到前面幾個步驟的所有設定,可以再做最後的檢查,檢查完後就可以按下「Create」。按下後如果有看到綠色的頁面就代表順利的完成了,直接按下「Close」即可。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667zaIAOUa3j3.png

Step.12 在Step.5的時候有提到本次實作要路由到第二個容器,所以必須再創建一個目標,那要創建目標必須先創建目標群組,所以在左方清單選擇「目標群組」。
https://ithelp.ithome.com.tw/upload/images/20200904/201276674xYyCZnDXy.png

Step.13 在這個畫面可以看到所有的目標群組,目前只有一個,也是剛剛建立的demo-1,為了要再新增一個,所以選擇「Create target group」。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667zCIMg8LDRQ.png

Step.14 此畫面就很熟悉了,跟Step.9很像,不過這邊的名稱改為demo-2,而且要改成443埠,而VPC跟剛剛的相同,這表示在運作狀態檢查的時候將會是與demo-1相同的目標,但是在不同的容器中,那下方的尖閣時間一樣調為10秒,完成後按下「Create」。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667aYbzhwuJOl.png

Step.15 完成後回到目標群組清單就會看到已經有兩個目標群組了,這時可以來檢查一下負載平衡器並驗證已設定兩個連接埠,按下左方的「負載平衡器」。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667KcS1t9ym6K.png

Step.16 在Listeners(接聽程式)裡面確實可以看到已設定的兩個連結埠,但仔細看443埠會傳到demo-1,這是不對的,應該要傳到demo-2,所以必須要點擊「View/edit rules」。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667i5qllakmkM.png

Step.17 先點擊用紅框圈選起來的筆,這時在last左方會出現一隻更小的筆,點擊下去才可修改。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667XRqr9i5gFm.png

Step.18 此時在THEN的區塊裡就出現了一支筆,點擊下去,就可以更改成demo-2,改完之後按下勾勾,並按下右上方的「Update」。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667n0PfnAJ4la.png

Step.19 這時就可以看到443埠會傳送到目標群組demo-2內
https://ithelp.ithome.com.tw/upload/images/20200904/20127667nRsLXhRtmt.png

Step.20 那也可以做個簡單的測試,回到負載平衡器清單,複製下方的DNS位置,並開啟瀏覽器上方貼上並加上「/test.html」就會出現「This is test container one」的畫面,那當然容器二只要加上「:443/test.html」一樣也會成功喔。
https://ithelp.ithome.com.tw/upload/images/20200904/20127667YOcDgRjDqU.png

3.Application Load Balancer示意圖
https://ithelp.ithome.com.tw/upload/images/20200904/20127667uMUAjdqQN9.png

首先,Application Load Balancer必須要有接聽程式,接聽程式會使用設定的通訊協定與連接埠,檢查來自用戶端的連線請求,而接聽程式可以註冊一個以上的目標群組,而目標群組會根據指定的通訊協定跟連接埠路由至已註冊的目標。目標就是流量的目的地,而一個目標可以在多個目標群組註冊,當然目標也有分很多類型,但這邊就不一一做說明,可以參考以下的官方網站,內有針對Application Load Balancer做詳細的介紹https://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/application/introduction.html

4.考前重點大補帖
⦁ Elastic Load Balancing支援三種類型的負載平衡器:

  1. Application Load Balancer
  2. Network Load Balancer
  3. Classic Load Balancer

⦁ Application Load Balancer 會註冊目標而非執行個體。

⦁ 目標群組是將目標註冊到負載平衡器的方式。

⦁ Application Load Balancer 可讓您將不同的請求路由至同一個執行個體。

⦁ 主機型路由 - 可讓相同負載平衡器支援多個網域,同時將請求路由到目標群組
路徑型路由 - 可根據請求中的 URL 路由至目標群組。

⦁ Application Load Balancer至少要選擇2個可用區域(AZ)

⦁ 接聽程式 - 檢查連線請求的程序,使用您所設定的通訊協定與連接埠。
目標群組 - 使用指定的通訊協定和連結埠,將請求路由到一個或多個已註冊的目標。
目 標 - 以建立的接聽程式規則為基礎的流量目的地。

⦁ 一個目標可以在多個目標群組註冊

⦁ Application Load Balancer 新增 HTTP/2 和 WebSocket ,增強支援的通訊協定。

5.經典歷屆試題

單選題

  1. 下列何者最符合對Elastic Load Balancing的描述?
    A. 將網址和IP互相轉換(DNS)
    B. 在多個Amazon EC2中分配傳入的流量
    C. 蒐集Amazon EC2的相關指標
    D. 自動調整Amazon EC2執行個體的個數,來應對傳入的流量
    正解:B

《詳解》
A選項為AWS Route 53。C選項為AWS CloudWatch。D選項為Auto Scaling。


上一篇
Day8:AWS安全群組
下一篇
Day10:Auto Scaling
系列文
三十天考過AWS CCP證照,真awsome12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言